document.addEventListener('DOMContentLoaded', () => {
    // 配置 marked 选项
    marked.setOptions({
        gfm: true, // 启用 GitHub 风格的 Markdown
        breaks: true, // 支持 GitHub 换行符
        highlight: function (code, lang) {
            // 代码高亮
            const language = hljs.getLanguage(lang) ? lang : 'plaintext';
            return hljs.highlight(code, { language }).value;
        }
    });

    // 获取URL参数中的笔记ID
    const urlParams = new URLSearchParams(window.location.search);
    const noteId = urlParams.get('id');

    // 根据ID获取笔记数据
    function getNoteById(id) {
        // 这里应该从后端获取数据，现在先模拟一些数据
        return {
            id: 1,
            title: "项目启动会议",
            content: `# 项目启动会议记录

## 会议主题
讨论Q1季度新项目启动事项和人员分配

## 会议内容

### 1. 项目概述
| 项目名称 | 开始时间 | 结束时间 | 负责人 |
|---------|---------|---------|--------|
| 新版本开发 | 2024-01-20 | 2024-03-31 | 张三 |

### 2. 主要议题
- 项目目标和范围确定
- 团队成员分工
- 时间节点安排
- 风险评估和应对策略

### 3. 项目架构图
![项目架构图](https://example.com/project-architecture.png)

### 4. 演示视频
<video controls>
    <source src="https://example.com/project-demo.mp4" type="video/mp4">
    您的浏览器不支持视频标签
</video>

### 5. 代码示例
\`\`\`javascript
function calculateProjectMetrics() {
    // TODO: 实现项目指标计算
    console.log("计算项目指标");
}
\`\`\`

> 注意：以上内容为初步规划，具体实施细节需要进一步讨论确定。`,
            startTime: "2024-01-15 09:30",
            endTime: "2024-01-15 11:30",
            priority: "高",
            status: "已完成",
            assignee: "张三"
        };
    }

    // 获取并显示笔记数据
    const note = getNoteById(noteId);
    if (note) {
        document.querySelector('.note-title').textContent = note.title;
        document.querySelector('.time-item:first-child span').textContent = note.startTime;
        document.querySelector('.time-item:last-child span').textContent = note.endTime;
        document.querySelector('.priority').textContent = `${note.priority}优先级`;
        document.querySelector('.status').textContent = note.status;
        document.querySelector('.info p').textContent = note.assignee;
        
        // 使用 marked 渲染 Markdown 内容
        const contentHtml = marked.parse(note.content);
        document.querySelector('.content-text').innerHTML = contentHtml;

        // 初始化代码高亮
        document.querySelectorAll('pre code').forEach((block) => {
            hljs.highlightElement(block);
        });
    }

    // 编辑按钮点击事件
    const editBtn = document.querySelector('.edit-btn');
    editBtn.addEventListener('click', () => {
        // TODO: 实现编辑功能
        console.log('编辑笔记:', noteId);
    });

    // 分享按钮点击事件
    const shareBtn = document.querySelector('.share-btn');
    shareBtn.addEventListener('click', async () => {
        try {
            if (navigator.share) {
                await navigator.share({
                    title: document.querySelector('.note-title').textContent,
                    text: document.querySelector('.content-text').textContent,
                    url: window.location.href
                });
            } else {
                // 如果不支持原生分享API，复制链接到剪贴板
                await navigator.clipboard.writeText(window.location.href);
                alert('链接已复制到剪贴板');
            }
        } catch (err) {
            console.error('分享失败:', err);
        }
    });

    // 更换负责人按钮点击事件
    const changeAssigneeBtn = document.querySelector('.change-assignee');
    changeAssigneeBtn.addEventListener('click', () => {
        // TODO: 实现更换负责人功能
        console.log('更换负责人');
    });

    // 附件下载按钮点击事件
    const downloadBtns = document.querySelectorAll('.download-btn');
    downloadBtns.forEach(btn => {
        btn.addEventListener('click', (e) => {
            const fileName = e.target.closest('.attachment-item').querySelector('span').textContent;
            // TODO: 实现文件下载功能
            console.log('下载文件:', fileName);
        });
    });

    // 发送评论功能
    const commentForm = document.querySelector('.comment-input');
    const commentInput = commentForm.querySelector('textarea');
    const sendBtn = commentForm.querySelector('.send-btn');

    sendBtn.addEventListener('click', () => {
        const content = commentInput.value.trim();
        if (content) {
            addComment({
                author: '当前用户',
                content: content,
                time: new Date().toLocaleString()
            });
            commentInput.value = '';
            // 重置文本框高度
            commentInput.style.height = 'auto';
        }
    });

    // 添加评论到列表
    function addComment(comment) {
        const commentList = document.querySelector('.comment-list');
        const commentElement = document.createElement('div');
        commentElement.className = 'comment-item';
        
        // 使用 marked 解析评论内容中的 Markdown
        const parsedContent = marked.parse(comment.content);
        
        commentElement.innerHTML = `
            <div class="comment-avatar">
                <i class="fas fa-user"></i>
            </div>
            <div class="comment-content">
                <div class="comment-header">
                    <span class="comment-author">${comment.author}</span>
                    <span class="comment-time">${comment.time}</span>
                </div>
                <div class="markdown-body">${parsedContent}</div>
            </div>
        `;
        commentList.appendChild(commentElement);

        // 为新添加的评论中的代码块应用高亮
        commentElement.querySelectorAll('pre code').forEach((block) => {
            hljs.highlightElement(block);
        });

        // 滚动到新评论
        commentElement.scrollIntoView({ behavior: 'smooth' });
    }

    // 自动调整文本框高度
    commentInput.addEventListener('input', function() {
        this.style.height = 'auto';
        this.style.height = (this.scrollHeight) + 'px';
    });

    // 监听回车发送评论（Shift + Enter 换行）
    commentInput.addEventListener('keydown', (e) => {
        if (e.key === 'Enter' && !e.shiftKey) {
            e.preventDefault();
            sendBtn.click();
        }
    });
}); 